iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
AI & Data

Object Detection and Image Processing with Python系列 第 24

《第24天》YOLOv7本地端訓練(Windows)

  • 分享至 

  • xImage
  •  

環境安裝

  1. 開啟Pycharm新專案:

    1.1 點擊New Project開啟新專案

    1.2 點擊New enviroment using,選擇Vitualenv後輸入專案名稱,再點擊Create。

  2. 到Github下載WongKinYiu/yolov7

  3. 解壓縮後將yolov7-main資料夾移動到Pycharm專案資料夾內,並修改名稱為YOLOv7。

  1. 在Pycharm內點選Terminal,並依序輸入以下指令

    4.1 進入yolov7資料夾:cd '.\yolov7\'

    4.2 修正requirements.txt

    • 修正前

    • 修正後

    4.3 安裝需求套件:pip install -r requirements.txt


模型推論(detect.py檔)

  1. 預訓練模型yolov4-csp權重

    1.1 下載預訓練模型yolov7.pt權重

    1.2 放到yolov7資料夾,用以執行detect.py測試是否部署環境成功。

  2. inference/images資料夾中,有6張照片,可測試單張及多張照片的GPU推論速度。

  3. 在Terminal輸入推論指令

    3.1 單張照片gpu推論:python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg --device 0

    • 執行結果:1張圖片推論0.013秒、NMS 0.027秒。

    • 推論結果

    3.2 多張照片gpu推論:python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference/images --device 0

    • 執行結果

      • 第1張圖片推論0.013秒、NMS 0.004秒。
      • 第2~8張圖片,平均1張推論0.012秒、NMS 0.001秒。

    • 推論結果

    3.3 參數說明

    • --weights 後面放推論時讀取的weight檔案路徑,如:yolov7.pt
    • --source 後面放要推論的圖片或資料夾路徑,如:inference/images
    • --conf 後面放confidence的閾值,如:0.25
    • --iou-thres後面放NMS的閾值,如:默認0.5
    • --img-size 待推論圖片輸入模型的尺寸,如:640
    • --save_result 是否儲存圖片推論結果,如:True
    • --device 指定推論GPU的編號,如:0

模型訓練(train.py檔)

  1. YOLO txt格式

    1.1 資料集下載

    • 下載datasets1:從coco128中擷取部分資料。

    • 將datasets1資料集解壓縮,並移到yolov7下的data資料夾內。

    1.2 下載預訓練模型yolov7_training.pt權重,並放到yolov7資料夾內。

    1.3 修改coco.yaml參數檔檔

    • train與val資料夾路徑。(編號1)
    • nc:dataset1中共有80個類別。(編號2)
    • names:字串格式輸入類別名稱。(編號3)

    1.4 修改cfg/training/yolov7.yaml

    • nc:dataset1中共有80個類別。

    1.5 執行訓練:python train.py --workers 4 --device 0 --batch-size 4 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --weights 'yolov7_training.pt' --name yolov7-custom --hyp data/hyp.scratch.custom.yaml --epochs 10

    • 訓練過程

    • 訓練結果

    1.6 Demo測試:python detect.py --weights runs/train/yolov7-custom/weights/best.pt --conf 0.25 --img-size 640 --source inference/images --device 0

    • 推論過程


小結

  1. 經過10天論文地獄與5天OD模型部署訓練,終於要實作「鋼胚序號辨識」專案。
  2. 下一站,我們將分享「YOLO訓練流程與資料集YOLO txt格式」。

讓我們繼續看下去...


參考資料

  1. WongKinYiu/yolov7

上一篇
《第23天》YOLOX本地端訓練(Windows)
下一篇
《第25天》YOLO訓練流程與資料集YOLO txt格式
系列文
Object Detection and Image Processing with Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言